/* eslint-disable prefer-rest-params */
/* eslint-disable jsdoc/no-restricted-syntax */
// out-of-order
/**
 * @returns {void}
 */
function outOfOrderCurry() {
  Array.prototype.reduce.call(arguments, (prev, curr) => curr.push(prev), []);
}

// hard
/**
 * @param {any[]=} arr
 * @param {...*} concat
 * @returns {any[]}
 */
function arrConcat(arr = [], ...concat) {
  console.log(arguments);
  return [...arr, ...concat];
}

arrConcat();
